#pragma once
#include <fstream>
#include <vector>
#include <iostream>
#include <istream>
#include <string>
#include <unordered_map>
#include "graphics/object/Model.h"
#include "vulkan/VKShader.h"
#include "graphics/object/Skybox.h"
class ResourceManager
{
public:
	static void ReadResource(const std::string& resourceFilePath);
	static void ClearResource();

	static VKShader* FindShader(const std::string& shaderName);
	static Object* FindObject(const std::string& objectName);
	static Texture* FindTexture(const std::string& texturePath,aiTextureType textureType);

	static uint32_t m_WindowWidth;
	static uint32_t m_WindowHeight;

	static std::vector<VKShader*> m_Shaders;
	static std::vector<Object*> m_Objects;
	static std::unordered_map<std::string,Texture*> m_Textures;
private:
	static VKShader* LoadShader(const std::string& vertFilePath,const std::string& fragFilePath);
	static Model* LoadModel(const std::string& filePath);
};

